/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package caylus.Model;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.NotSerializableException;
import java.io.ObjectOutputStream;

/**
 *
 * @author sridi mahdi
 */
public class Save {

    private Croupier _Croupier ;

    public Save(Croupier pCroupier , String pCheminCroupier)
    {
        _Croupier = pCroupier;
        sauvegarderPartie(pCheminCroupier);
    }

 public boolean sauvegarderPartie(String pCheminCroupier )
 {
         File fichier = new File(pCheminCroupier);
        
         try {
         
         ObjectOutputStream stocke_Croupier = new ObjectOutputStream(new FileOutputStream(fichier));
         // partie stockage des elements necessaires à la récuperation du Mr Coupier !!

         
         stocke_Croupier.writeObject(_Croupier.get_generalSettings()         );
         stocke_Croupier.writeObject(_Croupier.get_joueurCourant()           );
         stocke_Croupier.writeObject(_Croupier.getJoueurs()                  );
         stocke_Croupier.writeObject(_Croupier.get_chateau()                 );
         stocke_Croupier.writeObject(_Croupier.get_phaseDuJeu()              );
         stocke_Croupier.writeObject(_Croupier.get_phaseConstructionChateau());
         stocke_Croupier.writeObject(_Croupier.get_leBailli()                );
         stocke_Croupier.writeObject(_Croupier.get_lePrevot()                );

         System.out.println("================ first step ========================");
         
         stocke_Croupier.flush();
         stocke_Croupier.close();

         return true;
       }

       catch (NotSerializableException e)
       {
           System.out.println(" erreur :" + e.toString());
           return false;
       }

       catch (IOException e)
       {
         System.out.println(" erreur :" + e.toString());
         return false;
       }

       catch (Exception e)
       {
         System.out.println(" erreur :" + e.toString());
         return false;
       }
    }

}